Skip to content

[capabilities] add capabilities method to ObjectStore trait#732

Open
vitoordaz wants to merge 4 commits into
apache:mainfrom
vitoordaz:capabilities
Open

[capabilities] add capabilities method to ObjectStore trait#732
vitoordaz wants to merge 4 commits into
apache:mainfrom
vitoordaz:capabilities

Conversation

@vitoordaz
Copy link
Copy Markdown
Contributor

@vitoordaz vitoordaz commented May 23, 2026

I'm starting with a single capability for ordered list results.

Memory, GCP, and Azure list objects always return ordered results. Local filesystem storage uses WalkDir which relies on OS readdir syscall that does not guarantee lexicographic order because it depends on file system.

For AWS, it depends on the bucket type; for directory buckets, the results are not ordered.

I'm thinking about adding a new config option for indicating whether the S3 bucket is a directory bucket or not. But for now, we can say that AWS results are not ordered.

Which issue does this PR close?

Closes #675.

Rationale for this change

This will allow object store users to write more efficient code by leveraging underlying object store features.

What changes are included in this PR?

A new capabilities method is added to the ObjectStore trait.

Are there any user-facing changes?

This change is backward compatible.

vitoordaz added 3 commits May 22, 2026 20:21
I'm starting with a single capability for ordered list results.

GCP and Azure list objects always return ordered results. For AWS it depends on a bucket type, for directory buckets results are not ordered. I'm thinking about adding new config option for indicating whether S3 bucket is a directory bucket or not. But for now we can say that AWS results are not ordered.
@vitoordaz
Copy link
Copy Markdown
Contributor Author

@alamb does this change seems reasonable to you?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expose underlying object store capabilities (e.g. ordered listing, negative ranges)

1 participant